<?php

class Application_Model_CuentasDespliegue extends Sgit_Model
{
    protected $_name = 'control_economico_series';
    protected $_primary = 'id';
    protected $_cache_activa = true;


    protected $_allSeriesDespliegue=null;
    protected $_allSeries=null;
    

    function setAnio($anio)
    {
        $this->anio = $anio;
    }

   function setZona($anio)
    {
       $this->idZona = 50;
    }
    
  
    
    
    

  
    
     function getSumaNaturalezas($naturalezas,$nombre='')
    {
        foreach ($naturalezas as $v)
        {
            $n = $this->getSerieNaturalezaMeses($v);

            foreach ($n as $mes => $j)
            {

                $rows[$mes]['naturalezas'] = $naturalezas;
                $rows[$mes]['anio'] = $this->anio;
                $rows[$mes]['mes'] = $mes;
                $rows[$mes]['nombre'] = $nombre;
                $rows[$mes]['idZona'] = $this->idZona;
                $rows[$mes]['presupuesto'] += $j['presupuesto'];
                $rows[$mes]['estimado'] += $j['estimado'];
                $rows[$mes]['acumulado_presupuesto'] += $j['acumulado_presupuesto'];
                $rows[$mes]['acumulado_estimado'] += $j['acumulado_estimado'];
            }
        }
        return $rows;
    }
    
    
    
    
    function merge($estimado,$presupuesto,$nombre='')
    {
        
            for($i=1;$i<=12;$i++)
            {
                $rows[$i]['anio'] = $this->anio;
                $rows[$i]['mes'] = $i;
                $rows[$i]['presupuesto'] = $presupuesto[$i]['presupuesto'];
                $rows[$i]['nombre'] = $nombre;
                $rows[$i]['idZona'] = $this->idZona;
                $rows[$i]['estimado'] =$estimado[$i]['estimado'];
                $rows[$i]['acumulado_presupuesto'] = $presupuesto[$i]['acumulado_presupuesto'];
                $rows[$i]['acumulado_estimado'] =$estimado[$i]['acumulado_estimado'];
            }

        return $rows;
    }
    
    function resta($array1,$array2,$nombre='')
    {
        
            for($i=1;$i<=12;$i++)
            {
                $rows[$i]['anio'] = $this->anio;
                $rows[$i]['mes'] = $i;
                $rows[$i]['nombre'] = $nombre;
                $rows[$i]['idZona'] = $this->idZona;
                $rows[$i]['presupuesto'] = $array1[$i]['presupuesto']- $array2[$i]['presupuesto'];
                $rows[$i]['estimado']= $array1[$i]['estimado']- $array2[$i]['estimado'];
                $rows[$i]['acumulado_presupuesto'] =  $array1[$i]['acumulado_presupuesto']- $array2[$i]['acumulado_presupuesto'];
                $rows[$i]['acumulado_estimado'] = $array1[$i]['acumulado_estimado']- $array2[$i]['acumulado_estimado'];
            }

        return $rows;
    }

    
    function getNaturalezas()
    {
        $select = $this->getAdapter()->select();
        $select->from(array('control_economico_naturalezas'));
        $select->where('tipo = ?','Despliegue');
        $rows = $this->getAdapter()->fetchAll($select);
        
        return $rows;
    }
        function getSerieNaturalezaMeses($id_naturaleza,$mes=null)
    {
        $rows = $this->getSerieNaturaleza($id_naturaleza);
        
        if(is_numeric($mes)) return $rows['mes'][$mes];
        else return $rows['mes'];
    }
    
    function getSerieNaturaleza($id_naturaleza)
    {
        $rows = $this->getSeries();
        return $rows[$id_naturaleza];
    }
    
    function getAllSeries($id_naturaleza = null)
    {

        if (is_null($this->_allSeries))
        {
                $naturalezas=array(43,44,45,46);
            
                $modificado = new Zend_Db_Expr("IF(f_estimado!=f_presupuesto,'modificado','')");
                $select = $this->getAdapter()->select();
                $select->from(array('control_economico_series'), array('id', 'id_naturaleza', 'mes', 'presupuesto', 'estimado', 'f_estimado', 'f_presupuesto', 'modificado' => $modificado));
                $select->where('anio = ?', $this->anio);
                $select->where('version = ?', 0);
                $select->where('id_naturaleza IN(?)', $naturalezas);
                $rows = $this->getAdapter()->fetchAll($select);
                $this->_allSeries = $this->assocArray($rows, 'id_naturaleza');

        }




        if (is_numeric($id_naturaleza))
            $salida= $this->_allSeries[$id_naturaleza];
        else
            $salida= $this->_allSeries;


        return $salida;
    }
    
    
    
    function getSeries()
    {

        $anio = $this->anio;

        //se puede hacer un select where tipo='Despliegue'
       


        foreach ($this->getNaturalezas() as $v)
        {

            $fila[$v['id']]['nombre'] = $v['nombre'] . ' (P)<br>(A)';
            $fila[$v['id']]['nombreI'] = $v['nombre'];


            $rows = $this->getAllSeries($v['id']);

            $series = $this->assocArray2($rows, 'mes');

            $fila[$v['id']]['mes'] = $series;

            for ($i = 1; $i < 13; $i++)
            {
                $f[$v['id']]['mes']['acumulado_estimado'] += $fila[$v['id']]['mes'][$i]['estimado'];
                $fila[$v['id']]['mes'][$i]['acumulado_estimado'] = round($f[$v['id']]['mes']['acumulado_estimado'], 2);

                $f[$v['id']]['mes']['acumulado_presupuesto'] += $fila[$v['id']]['mes'][$i]['presupuesto'];
                $fila[$v['id']]['mes'][$i]['acumulado_presupuesto'] = round($f[$v['id']]['mes']['acumulado_presupuesto'], 2);
            
                $fila[$v['id']]['mes'][$i]['nombre'] = $v['nombre'];
                $fila[$v['id']]['mes'][$i]['idZona'] = $this->idZona;
                $fila[$v['id']]['mes'][$i]['anio'] = $this->anio;
                $fila[$v['id']]['mes'][$i]['mes'] = $i;
                $fila[$v['id']]['mes'][$i]['id_naturaleza'] = $v['id'];

            }
            
            
            
            ksort( $fila[$v['id']]['mes']);
        }

        return $fila;
    }
    
    function getCosteSapDespliegue($mes = '')
    {
        $rows = $this->getSerieNaturalezaMeses(43,'Coste SAP');

                
        if (is_numeric($mes))
            return $rows[$mes];
        else
            return $rows;
    }
    
    function getInversaSapDespliegue($mes = '')
    {
        $rows =   $this->getSerieNaturalezaMeses(44,'Inversa SAP');

        if (is_numeric($mes))
            return $rows[$mes];
        else
            return $rows;
    }
    
    function getSaldoSapDespliegue($mes = '')
    {
        
        $coste =   $this->getCosteSapDespliegue();
        $inversa = $this->getInversaSapDespliegue();
        
        $rows = $this->resta($coste,$inversa,'Saldo SAP');
        
        if (is_numeric($mes))
            return $rows[$mes];
        else
            return $rows;
    }
    
    function getInmovilizadoDespliegue($mes = '')
    {
        $rows = $this->getSumaNaturalezas(array(45, 46),'Total Inmovilizado');
        
        if (is_numeric($mes))
            return $rows[$mes];
        else
            return $rows;

    }
    

    
    function getResumenDespliegue($mes)
    {
         $coste= $this->getCosteSapDespliegue();
         $inversa=$this->getInversaSapDespliegue();
         $saldo=$this->getSaldoSapDespliegue();
         $inmovilizado=$this->getInmovilizadoDespliegue();
         
         
         
         $fila['ytd']['A']['coste']=  round($coste[$mes]['acumulado_estimado']/1000,2);
         $fila['ytd']['A']['inversa']=round($inversa[$mes]['acumulado_estimado']/1000,2);
         $fila['ytd']['A']['saldo']=  round($saldo[$mes]['acumulado_estimado']/1000,2);
         $fila['ytd']['A']['inmovilizado']=  round($inmovilizado[$mes]['acumulado_estimado']/1000,2);
         
         
         $fila['ytd']['P']['coste']=  round($coste[$mes]['acumulado_presupuesto']/1000,2);
         $fila['ytd']['P']['inversa']=round($inversa[$mes]['acumulado_presupuesto']/1000,2);
         $fila['ytd']['P']['saldo']= round( $saldo[$mes]['acumulado_presupuesto']/1000,2);
         $fila['ytd']['P']['inmovilizado']= round( $inmovilizado[$mes]['acumulado_presupuesto']/1000,2);
         
         
         $fila['C']['A']['coste']=  round($coste[12]['acumulado_estimado']/1000,2);
         $fila['C']['A']['inversa']=round($inversa[12]['acumulado_estimado']/1000,2);
         $fila['C']['A']['saldo']=  round($saldo[12]['acumulado_estimado']/1000,2);
         $fila['C']['A']['inmovilizado']=  round($inmovilizado[12]['acumulado_estimado']/1000,2);
        
         
         $fila['C']['P']['coste']=  round($coste[12]['acumulado_presupuesto']/1000,2);
         $fila['C']['P']['inversa']=round($inversa[12]['acumulado_presupuesto']/1000,2);
         $fila['C']['P']['saldo']= round( $saldo[12]['acumulado_presupuesto']/1000,2);
         $fila['C']['P']['inmovilizado']= round( $inmovilizado[12]['acumulado_presupuesto']/1000,2);

         return $fila;
    }
    

    
    
    
    
    //Formateadores

    public function addInforme($v, $nombre = null)
    {
        
        $view=Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
        
        foreach ((array )$v as $k => $value)
        {
            if ($value['estimado'])
                $v[$k]['estimado'] = round($value['estimado'], 2);
            if ($value['estimado'])
                $v[$k]['presupuesto'] = round($value['presupuesto'], 2);
            if ($value['estimado'])
                $v[$k]['acumulado_presupuesto'] = round($value['acumulado_presupuesto'], 2);
            if ($value['estimado'])
                $v[$k]['acumulado_estimado'] = round($value['acumulado_estimado'], 2);
        }

        $nombre = (is_null($nombre)) ? $v[1]['nombre'] : $nombre;


        $fila = '
        <tr class="nfila" align="right">
        	<td class="ui-state-highlight Q">' .$view->translate($nombre) . ' (P) <br> (A)</td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[1]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[1]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[1]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[1]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[1]['estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[2]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[2]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[2]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[2]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[2]['estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[3]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[3]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[3]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[3]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[3]['estimado'],0) . '</span></td>
            <td class="ui-state-highlight Q"><span class="presupuesto">&nbsp;' . $view->numEs($v['3']['acumulado_presupuesto'],0) . '</span><br><span class="estimado">&nbsp;' . $view->numEs($v[3]['acumulado_estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[4]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[4]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[4]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[4]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[4]['estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[5]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[5]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[5]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[5]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[5]['estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[6]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[6]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[6]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[6]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[6]['estimado'],0) . '</span></td>
            <td class="ui-state-highlight Q"><span class="presupuesto">&nbsp;' . $view->numEs($v[6]['acumulado_presupuesto'],0) . '</span><br><span class="estimado">&nbsp;' . $view->numEs($v[6]['acumulado_estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[7]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[7]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[7]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[7]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[7]['estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[8]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[8]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[8]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[8]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[8]['estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' .$view->numEs( $v[9]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[9]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[9]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[9]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[9]['estimado'],0) . '</span></td>
            <td class="ui-state-highlight Q"><span class="presupuesto">&nbsp;' . $view->numEs($v[9]['acumulado_presupuesto'],0) . '</span><br><span class="estimado">&nbsp;' . $view->numEs($v[9]['acumulado_estimado'],0) . '</span></td>        
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[10]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[10]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[10]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[10]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[10]['estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[11]['acumulado_presupuesto'],0) . '">&nbsp;' . $view->numEs($v[11]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[11]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[11]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[11]['estimado'],0) . '</span></td>
            <td class="ui-widget-content"><span class="presupuesto" title="Anual (P): ' . $view->numEs($v[12]['acumulado_presupuesto'],0) . '">&nbsp;' .$view->numEs( $v[12]['presupuesto'],0) . '</span><br><span class="estimado ' . $view->numEs($v[12]['modificado'],0)  . '" title="Anual (A): ' . $view->numEs($v[12]['acumulado_estimado'],0)  . '">&nbsp;' . $view->numEs($v[12]['estimado'],0) . '</span></td>
            <td class="ui-state-highlight Q"><span class="presupuesto">&nbsp;' . $view->numEs($v[12]['acumulado_presupuesto'],0) . '</span><br><span class="estimado">&nbsp;' .$view->numEs( $v[12]['acumulado_estimado'],0) . '</span></td>
         </tr>';
        return $fila;
    }


    public function addPlan($v)
    {

        $view=Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
        
        $fila = '<tr><th class="ui-state-highlight">' . $view->translate($v[1]['nombre']) . '</th>';
        
        for ($i = 1; $i < 13; $i++)
        {
            $key = $v[$i]['id_naturaleza'] . '-' . $v[$i]['anio'] . '-' . $v[$i]['mes']. '-' . $v[$i]['idZona'] . '-presupuesto';
            $fila .= '<td><input type="text" id="' . $key . '" value="' . $v[$i]['presupuesto'] . '"  size="6" class="changePlan"/></td>';
        }
        $fila .= '<th class="ui-state-highlight total" align="right"><span id="total-' . $v[12]['id_naturaleza'] . '">' . $view->numEs($v[12]['acumulado_presupuesto'],0) . '</span></th></tr> ';

        return $fila;

    }
    
    
    public function addAvance($v)
    {

        $view=Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
        
        $fila = '<tr><th class="ui-state-highlight">' . $view->translate($v[1]['nombre']) . '<br><i>Plan</i></th>';
        
        for ($i = 1; $i < 13; $i++)
        {
            $key = $v[$i]['id_naturaleza'] . '-' . $v[$i]['anio'] . '-' . $v[$i]['mes']. '-' . $v[$i]['idZona'] . '-estimado';
            $fila .= '<td align="right"><input type="text" id="' . $key . '" value="' . $v[$i]['estimado'] . '"  size="6" class="changePlan mes-'.$i.'"/>
            <br>&nbsp;<i>' . $view->numEs($v[$i]['presupuesto'],0) . '</i>
            </td>';
        }
        $fila .= '<th class="ui-state-highlight total" align="right"><span id="total-' . $v[12]['id_naturaleza'] . '">' . $view->numEs($v[12]['acumulado_estimado'],0) . '</span>
                <br>&nbsp;<i>' . $view->numEs($v[12]['acumulado_presupuesto'],0) . '</i></th></tr> ';

        return $fila;

    }   
    
    
    
    
    
}
